Ext.namespace('pages.p2p.customer.posCode.hk');

pages.p2p.customer.posCode.hk.Main = function(config) {
	Ext.apply(this, config);
	this.initUIComponents();
	pages.p2p.customer.posCode.hk.Main.superclass.constructor.call(this);
};

Ext.extend(pages.p2p.customer.posCode.hk.Main, Ext.Panel, {
	/**
	 * 构造函数
	 */
	initUIComponents : function() {
		this.queryForm = new Ext.form.FormPanel({
			layout : 'column',
			region : 'north',
			labelWidth : 95,
			labelAlign : 'right',
			autoHeight :true,
			border : false,
			frame : false,
			items : [{
				columnWidth : 1,
				height : 10,
				border : false
			},{
				columnWidth : .25,
				layout : 'form',
				border : false,
				items : [ {
					fieldLabel : '回款开始时间',
					name : 'ZQHK_START',
					format : 'Y-m-d',
					id : 'ZQHK_START',
					anchor : '98%',
					xtype : 'datefield'
				} ]
			},{
				columnWidth : .25,
				layout : 'form',
				border : false,
				items : [ {
					fieldLabel : '回款结束时间',
					name : 'ZQHK_END',
					id : 'ZQHK_END',
					format : 'Y-m-d',
					anchor : '98%',
					xtype : 'datefield'
				} ]
			},{
				columnWidth : .25,
				layout : 'form',
				border : false,
				items : [ {
					fieldLabel : 'pos单号',
					name : 'Q_POS_CODE',
					id : 'Q_POS_CODE',
					anchor : '98%',
					xtype : 'textfield'
				} ]
			},{
				columnWidth : .25,
				layout : 'form',
				border : false,
				items : [ {
					fieldLabel : '债权编号',
					name : 'ZQ_ID',
					id : 'ZQ_ID',
					anchor : '98%',
					xtype : 'textfield'
				} ]
			},{
				columnWidth : .25,
				layout : 'form',
				border : false,
				items : [ new Ext.form.ComboBox({
					fieldLabel : '审核状态',
					name : 'Hk_STATE',
					id : 'Hk_STATE',
					anchor : '98%',
					store : new Ext.data.SimpleStore({
						fields : [ 'VALUE', 'TEXT' ],
						data : [ [ '00', '可还款' ] ,[ '001', '待还款' ] ,[ '01', '还款完成' ]/*,[ '02', '还款失败' ]*/,[ '', '全部' ]]
					}),
					valueField : 'VALUE',
					displayField : 'TEXT',
					hiddenName : 'Hk_STATE_VALUE',
					triggerAction : 'all',
					mode : 'local',
					editable : false,
					selectOnFocus : true,
					value : '00'
				}) ]
			},{
				columnWidth : .25,
				layout : 'form',
				border : false,
				items : [ new Ext.form.ComboBox({
					fieldLabel : 'POS平台',
					name : 'POS_PLATFORM_STATE',
					id : 'POS_PLATFORM_STATE',
					anchor : '98%',
					store : new Ext.data.SimpleStore({
						fields : [ 'VALUE', 'TEXT' ],
						data : [ [ '00', '未知' ] ,[ '01', '通联' ] ,[ '02', '银盛' ],[ '', '全部' ]]
					}),
					valueField : 'VALUE',
					displayField : 'TEXT',
					hiddenName : 'POS_PLATFORM_STATE_VALUE',
					triggerAction : 'all',
					mode : 'local',
					editable : false,
					selectOnFocus : true,
					value : ''
				}) ]
			}]
		});
		this.store = new Ext.data.Store({
			proxy : new Ext.data.HttpProxy({
				url : ExtJ.getActionPath('/pos/queryPosCodeHkList.do')
			}),
			remoteSort : true,
			reader : new Ext.data.JsonReader({
				root : 'data',
				totalProperty : 'total',
				id : 'ID'
			}, [{
				name : 'ID',
				mapping : 'ID'
			},{
				name : 'USERID',
				mapping : 'USERID'
			},{
				name : 'ZQID',
				mapping : 'ZQID'
			},{
				name : 'TCJE',
				mapping : 'TCJE'
			},{
				name : 'HKZT',
				mapping : 'HKZT'
			},{
				name : 'TZSJ',
				mapping : 'TZSJ'
			},{
				name : 'POS_CODE',
				mapping : 'POS_CODE'
			},{
				name : 'TZ_SOURCE',
				mapping : 'TZ_SOURCE'
			},{
				name : 'DETAILS_NHL',
				mapping : 'DETAILS_NHL'
			},{
				name : 'SJSYL',
				mapping : 'SJSYL'
			},{
				name : 'SJSYL_SHOW',
				mapping : 'SJSYL_SHOW'
			},{
				name : 'QX',
				mapping : 'QX'
			},{
				name : 'JXRQ',
				mapping : 'JXRQ'
			},{
				name : 'HKRQ',
				mapping : 'HKRQ'
			},{
				name : 'OPER_USER_ID',
				mapping : 'OPER_USER_ID'
			},{
				name : 'POS_OWNER_USER_ID',
				mapping : 'POS_OWNER_USER_ID'
			},{
				name : 'POS_OWNER_SJHM',
				mapping : 'POS_OWNER_SJHM'
			},{
				name : 'POS_BIZ_GYH',
				mapping : 'POS_BIZ_GYH'
			},{
				name : 'SH_USER_ID',
				mapping : 'SH_USER_ID'
			},{
				name : 'SH_DATE',
				mapping : 'SH_DATE'
			},{
				name : 'SH_CONTENT',
				mapping : 'SH_CONTENT'
			},{
				name : 'YS_TZSY',
				mapping : 'YS_TZSY'
			},{
				name : 'HK_USER_ID',
				mapping : 'HK_USER_ID'
			},{
				name : 'HK_DATE',
				mapping : 'HK_DATE'
			},{
				name : 'HK_CONTENT',
				mapping : 'HK_CONTENT'
			},{
				name : 'HK_STATE',
				mapping : 'HK_STATE'
			},{
				name : 'POS_PLATFORM',
				mapping : 'POS_PLATFORM'
			},{
				name : 'POS_CUSTOMER_SEX',
				mapping : 'POS_CUSTOMER_SEX'
			},{
				name : 'POS_CUSTOMER_SFZ',
				mapping : 'POS_CUSTOMER_SFZ'
			},{
				name : 'POS_CUSTOMER_HK_YHMC',
				mapping : 'POS_CUSTOMER_HK_YHMC'
			},{
				name : 'POS_CUSTOMER_HK_CARD_NUM',
				mapping : 'POS_CUSTOMER_HK_CARD_NUM'
			},{
				name : 'POS_CUSTOMER_LY',
				mapping : 'POS_CUSTOMER_LY'
			},{
				name : 'YJ_HKJE',
				mapping : 'YJ_HKJE'
			}])
		});
		var sm = new Ext.grid.CheckboxSelectionModel({
			singleSelect:false,
			listeners : {
			'rowselect' : function(sm,rowIndex,record){
//				var hkState = record.get("HK_STATE");
//				if('01' == hkState ){
//					Ext.getCmp('hk').setDisabled(true);
//				}else{
//					Ext.getCmp('hk').setDisabled(false);
//				}
			}
		}
			
		});
		var cm = new Ext.grid.ColumnModel([sm,new Ext.grid.RowNumberer(),{
				header : 'ID',
				width : 100,
				sortable : true,
				hidden:true,
				dataIndex : 'ID'
			},{
				header : 'POS单号',
				width : 120,
				sortable : true,
				dataIndex : 'POS_CODE'
			},{
				header : '回款状态',
				width : 80,
				sortable : true,
				dataIndex : 'HK_STATE',
				renderer : function(value){
					if("00" == value){
						return "待回款";					
					}else if("01" == value){
						return "回款完成";					
					}if("02" == value){
						return "回款失败";					
					}else{
						return "待回款";	
					}
				}
			},{
				header : '债权编号',
				width : 100,
				sortable : true,
				dataIndex : 'ZQID'
			},{
				header : '期限（天）',
				width : 100,
				sortable : true,
				dataIndex : 'QX'
			},{
				header : '债权计息日期',
				width : 100,
				sortable : true,
				dataIndex : 'JXRQ'
			},{
				header : '债权回款日期',
				width : 100,
				sortable : true,
				dataIndex : 'HKRQ'
			},{
				header : '投资金额',
				width : 150,
				sortable : true,
				dataIndex : 'TCJE'
			},{
				header : '投资时间',
				width : 150,
				sortable : true,
				dataIndex : 'TZSJ'
			},{
				header : '预计收益额',
				width : 90,
				sortable : true,
				dataIndex : 'YS_TZSY'
			},{
				header : '预计还款金额',
				width : 90,
				sortable : true,
				dataIndex : 'YJ_HKJE'
			},{
				header : 'POS平台',
				width : 120,
				sortable : true,
				dataIndex : 'POS_PLATFORM',
				renderer : function(value){
					if("00"==value){
						return "未知";
					}else if("01"==value){
						return "通联";
					}else if("02"==value){
						return "银盛";
					}else{
						return value;
					}
				}
			},{
				header : '客户经理员工号',
				width : 90,
				sortable : true,
				dataIndex : 'POS_BIZ_GYH'
			},{
				header : '客户姓名',
				width : 150,
				sortable : true,
				dataIndex : 'POS_OWNER_USER_ID'
			},{
				header : '客户手机号码',
				width : 150,
				sortable : true,
				dataIndex : 'POS_OWNER_SJHM'
			},{
				header : '客户性别',
				width : 120,
				sortable : true,
				dataIndex : 'POS_CUSTOMER_SEX',
				renderer : function(value){
					if("00"==value){
						return "未知";
					}else if("01"==value){
						return "男";
					}else if("02"==value){
						return "女";
					}else{
						return value;
					}
				}
			},{
				header : '客户身份证号码',
				width : 120,
				sortable : true,
				dataIndex : 'POS_CUSTOMER_SFZ'
			},{
				header : '客户回款银行名称',
				width : 120,
				sortable : true,
				dataIndex : 'POS_CUSTOMER_HK_YHMC'
			},{
				header : '客户回款银行卡号码',
				width : 120,
				sortable : true,
				dataIndex : 'POS_CUSTOMER_HK_CARD_NUM'
			},{
				header : '客户来源',
				width : 120,
				sortable : true,
				dataIndex : 'POS_CUSTOMER_LY',
				renderer : function(value){
					if("00"==value){
						return "未知";
					}else if("01"==value){
						return "陌生拜访";
					}else if("02"==value){
						return "驻点";
					}else if("03"==value){
						return "缘故";
					}else if("04"==value){
						return "转介绍";
					}else{
						return value;
					}
				}
			},{
				header : '录入人员',
				width : 120,
				sortable : true,
				dataIndex : 'OPER_USER_ID'
			},{
				header : '审核人员',
				width : 120,
				sortable : true,
				dataIndex : 'SH_USER_ID'
			},{
				header : '审核时间',
				width : 140,
				sortable : true,
				dataIndex : 'SH_DATE'
			},{
				header : '审核内容',
				width : 120,
				sortable : true,
				dataIndex : 'SH_CONTENT'
			},{
				header : '回款操作人',
				width : 120,
				sortable : true,
				dataIndex : 'HK_USER_ID'
			},{
				header : '回款时间',
				width : 120,
				sortable : true,
				dataIndex : 'HK_DATE'
			},{
				header : '回款备注',
				width : 120,
				sortable : true,
				dataIndex : 'HK_CONTENT'
			}]);
		/**
		 * GridPanel
		 */
		this.grid = new Ext.grid.GridPanel({
			id : 'grid',
			region : 'center',
			store : this.store,
			border : true,
			frame : false,
			viewConfig : {
				autoFill : false,
	    	    forceFit : false,
	    	    focusRow : function(){
	    	    	return;
	    	    },
	    	    getRowClass : function(record, rowIndex, rowParams, store){
	    	    	var hkState = record.get("HK_STATE");
	    	    	if('01' != hkState){
	    	    		var hkrq = record.get("HKRQ");
		    	    	var date = new Date();
		    	    	var year = date.getFullYear();
		    	    	var month = date.getMonth() + 1;
		    	    	if(month < 10 ){
		    	    		month = "0" + month;
		    	    	}
		    	    	var day = date.getDate();
		    	    	if(day < 10){
		    	    		day = "0" + day;
		    	    	}
		    	    	var nowDay = year + "-" + month  + "-" + day;
		    	    	if(hkrq == nowDay){
			    	    	return 'ux-grid-record-onTop';
		    	    	}else if(nowDay > hkrq){
		    	    		return 'ux-grid-record-q-red';
		    	    	}
	    	    	}
	    	    }
			},
			sm : sm,
			cm : cm,
			tbar : [{				
				id : 'query',
				iconCls : 'query',
				text : '查询',
				handler : this.onQuery.createDelegate(this)
			},'-', {
				id : 'reset',
				iconCls : 'reset',
				text : '重置',
				handler : this.onReset.createDelegate(this)
			},'-', {
				id : 'view',
				iconCls : 'view',
				text : '查看',
				handler : this.onView.createDelegate(this)
			},'-', {
				id : 'hk',
				iconCls : 'sh_db',
				text : '单笔确认回款',
				handler : this.onHk.createDelegate(this)
			},'-', {
				id : 'pl_hk',
				iconCls : 'sh_pl',
				text : '批量确认回款',
				handler : this.onPlHk.createDelegate(this)
			},'-', {
				id : 'pl_hk',
				iconCls : 'excel',
				text : '导出excel',
				handler : this.onExportExcel.createDelegate(this)
			},'','',new Ext.form.Label({
				name : 'remark',
				text : '红色记录为急需还款的信息!',
				style : 'color:red'
			})],
			bbar : new Ext.PagingToolbar({
				pageSize : pageSize,
				store : this.store,
				displayInfo : true,
				displayMsg : '当前显示第 {0} - {1} 条 / 共 {2} 条',
				emptyMsg : "没有记录"
			})
		});
		
		Ext.apply(this, {
			title : 'pos单号投资回款(提现)',
			closeAction : 'close',
			layout : 'border',
			border : false,
			tools : [{
						id : 'help',
						handler : function(){
							this.onHelp();				
						}.createDelegate(this)
					}],
//			title : 'pos单号投资回款审核',
			listeners : {
				'render' : this.initData.createDelegate(this)
			},
			items : [this.queryForm,this.grid]
		})
	},
	initData : function(){
		this.onQuery();
	},
	
	onHelp : function(){
		var dialog = new global.help.HelpWindow({key : 'postzgl.all.helpHk'});
		dialog.show();
	},
	
	onQuery : function(){
		this.store.baseParams.ZQHK_START = Ext.getCmp('ZQHK_START').getRawValue();
		this.store.baseParams.ZQHK_END = Ext.getCmp('ZQHK_END').getRawValue();
		this.store.baseParams.Hk_STATE = Ext.getCmp('Hk_STATE').getValue();
		this.store.baseParams.ZQ_ID = Ext.getCmp('ZQ_ID').getValue();
		this.store.baseParams.POS_PLATFORM_STATE = Ext.getCmp('POS_PLATFORM_STATE').getValue();
		this.store.baseParams.Q_POS_CODE = Ext.getCmp('Q_POS_CODE').getValue();
		Ext.getBody().mask("正在查询,请稍候...");
		this.store.reload({
			params : {
				start : 0,
				limit : pageSize
			},
			callback : function() {
				Ext.getBody().unmask(true);
			}
		});
	},
	
	onReset : function(){
		this.queryForm.getForm().reset();
	},
	
	onHk : function(){
		var record = this.grid.getSelectionModel().getSelected();
		if (!record) {
			ExtJ.showMessage("请选择一条需要回款的记录!");
			return;
		}
		var win = new pages.p2p.customer.posCode.hk.Hk({
			record : record
		});
		win.show();
	},
	
	onPlHk : function(){
		var records = this.grid.getSelectionModel().getSelections();
		if (records.length < 1) {
			ExtJ.showMessage("请至少选择一条需要回款的记录!");
			return;
		}
		var ids = new Array();
		var posCodeArr = new Array();
		var tzjeArr = new Array();
		var tzsyjeArr = new Array();
		for(var i=0;i < records.length; i++){
			ids.push(records[i].get("ID"));
			posCodeArr.push(records[i].get("POS_CODE"));
			tzjeArr.push(records[i].get("TCJE"));
			tzsyjeArr.push(records[i].get("YS_TZSY"));
		}
		Ext.MessageBox.confirm("确认框", "确定回款吗？", function(data) {
			if (data == "yes") {
				Ext.getBody().mask("正在处理,请稍候...");
				Ext.Ajax.request({
					url : ExtJ.getActionPath("/pos/savePlHK.do"),
					method : 'POST',
					params : {
						ids : ids + "",
						posCodeArr : posCodeArr + "",
						tzjeArr : tzjeArr + "",
						tzsyjeArr : tzsyjeArr + "",
						operState : 'plHK'
					},
					success : function(response, options) {
						var text = Ext.decode(response.responseText);
						if(text.isSuc){
							ExtJ.showMessage(text.msg);
							Ext.getCmp('grid').getStore().reload();
						}else{
							ExtJ.showMessage(text.msg);
						}
						Ext.getBody().unmask(true);
					}.createDelegate(this),
					failure : function(response, options){
						ExtJ.showError("网络异常！");
					}
				});
			}
		});
	},
	
	onView : function(){
		var record = this.grid.getSelectionModel().getSelected();
		if (!record) {
			ExtJ.showMessage("请选择一条需要查看的记录!");
			return;
		}
		var win = new pages.p2p.customer.posCode.hk.View({
			record : record
		});
		win.show();
	},
	
	onExportExcel : function(){
		this.store.baseParams.ZQHK_START = Ext.getCmp('ZQHK_START').getRawValue();
		this.store.baseParams.ZQHK_END = Ext.getCmp('ZQHK_END').getRawValue();
		this.store.baseParams.Hk_STATE = Ext.getCmp('Hk_STATE').getValue();
		this.store.baseParams.ZQ_ID = Ext.getCmp('ZQ_ID').getValue();
		this.store.baseParams.POS_PLATFORM_STATE = Ext.getCmp('POS_PLATFORM_STATE').getValue();
		this.store.baseParams.Q_POS_CODE = Ext.getCmp('Q_POS_CODE').getValue();
		var ZQHK_START = this.store.baseParams.ZQHK_START;
		var ZQHK_END = this.store.baseParams.ZQHK_END;
		var Hk_STATE = this.store.baseParams.Hk_STATE;
		var ZQ_ID = this.store.baseParams.ZQ_ID;
		var POS_PLATFORM_STATE = this.store.baseParams.POS_PLATFORM_STATE;
		var Q_POS_CODE = this.store.baseParams.Q_POS_CODE;
		ExtJ.doExport({
//			url : ExtJ.getActionPath(baseUrl + "/pos/exportExcel.do",params)
			url :baseUrl + "/pos/exportExcel.do",
			params : {
				ZQHK_START : ZQHK_START,
				ZQHK_END : ZQHK_END,
				Hk_STATE : Hk_STATE,
				ZQ_ID : ZQ_ID,
				POS_PLATFORM_STATE : POS_PLATFORM_STATE,
				Q_POS_CODE : Q_POS_CODE,
				testCN : '我是中文'
				
			}
		});
	}
});